// pages/addActive/addActive.js
var WXAPI = require("./../../wxApi/main")
import WxValidate from './../../utils/wxValidate'
var app = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    imgList: [],
    activeInfo: {
      describe: "", // 描述
      id: "",
      img: "", // 图片
      title: "" // 活动名称
    }
  },
  ChooseImage() {
    let self = this
    let activeInfo = this.data.activeInfo
    wx.showLoading({
      title: '图片上传中...',
    })
    wx.chooseImage({
      count: 1, //默认9
      sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图，默认二者都有
      sourceType: ['album', 'camera'], //从相册选择
      success: (res) => {
        if (this.data.imgList.length != 0) {
          this.setData({
            imgList: this.data.imgList.concat(res.tempFilePaths)
          })
        } else {
          this.setData({
            imgList: res.tempFilePaths
          })
        }
        // 上传图片
        WXAPI.upload({
          file: res.tempFilePaths[0]
        }).then(function (res) {
          wx.hideLoading()
          res = JSON.parse(res)
          if (res.code == 200) {
            activeInfo.img = res.data
            self.setData({
              activeInfo: activeInfo,
              noImg: ''
            })
          } else {
            wx.showToast({
              title: res.msg,
              icon: 'none',
              duration: 3000
            })
          }
        }).catch(function (e) {
          console.log(e)
          wx.showToast({
            title: e.msg,
            icon: 'none'
          })
        })
      }
    });
  },
  ViewImage(e) {
    wx.previewImage({
      urls: this.data.imgList,
      current: e.currentTarget.dataset.url
    });
  },
  DelImg(e) {
    wx.showModal({
      title: '删除提示',
      content: '确定要删除这张图片吗？',
      cancelText: '取消',
      confirmText: '确定',
      success: res => {
        if (res.confirm) {
          this.data.imgList.splice(e.currentTarget.dataset.index, 1);
          this.setData({
            imgList: this.data.imgList
          })
        }
      }
    })
  },

  // 双向绑定
  inputedit: function (e) {
    // 1. input 和 info 双向数据绑定
    let dataset = e.currentTarget.dataset;
    //data-开头的是自定义属性，可以通过dataset获取到，dataset是一个json对象，有obj和item属性，可以通过这两个实现双向数据绑定，通过更改这两个值，对不同name的变量赋值
    let value = e.detail.value;
    this.data[dataset.obj][dataset.item] = value;
    this.setData({
      obj: this.data[dataset.obj]
    });
    if (value) {
      this.data[dataset.tips] = ''
      let tips = dataset.tips
      this.setData({
        [tips]: this.data[dataset.tips]
      });
    }
  },

  // 表单验证
  initValidate() {
    let rules = {
      title: {
        required: true
      },
      describe: {
        required: true
      },
      img: {
        required: true
      }
    }

    let message = {
      title: {
        required: '请输入活动名称'
      },
      describe: {
        required: '请输入活动描述'
      },
      img: {
        required: '请上传活动图片'
      }
    }
    //实例化当前的验证规则和提示消息
    this.WxValidate = new WxValidate(rules, message);
  },
  // 添加活动
  addActive: function (e) {
    console.log(this.data.activeInfo)
    let that = this
    let params = e.detail.value;
    console.log(this.data.registInfo)
    params.img = this.data.activeInfo.img
    console.log(params)
    //表单元素验证不通过，此处给出相应提示
    if (!this.WxValidate.checkForm(params)) {
      let error = this.WxValidate.errorList;
      error.map(item => {
        switch (item.param) {
          case "title":
            //TODO
            that.setData({
              noName: item.msg
            })
            break;
          case "describe":
            that.setData({
              noDes: item.msg
            })
            break;
          case "img":
            that.setData({
              noImg: item.msg
            })
            break;
        }
      })
      return false;
    }
    WXAPI.addActive(this.data.activeInfo).then(res => {
      console.log(res)
      if (res.code == 200) {
        wx.showToast({
          title: '操作成功',
          icon: 'success',
          duration: 3000
        })
        setTimeout(time => {
          var pages = getCurrentPages();
          var currPage = pages[pages.length - 1]; //当前页面
          var prevPage = pages[pages.length - 2]; //上一个页面
          //直接调用上一个页面对象的setData()方法，把数据存到上一个页面中去
          prevPage.setData({
            id: this.data.activeInfo.id
          });
          wx.navigateBack({
            delta: 1
            // success: function (e) {
              // var page = getCurrentPages().pop();
              // if (page == undefined || page == null) return;
              // page.onLoad();
            // }
          })
        }, 2000)
      } else {
        wx.showToast({
          title: '操作失败!',
          icon: 'none',
          duration: 3000
        })
      }
    }).catch(err => {
      console.log(err)
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.initValidate()
    if (options.id) {
      let imgList = this.data.imgList
      let img = app.globalData.imgBaseUrl
      WXAPI.activeDetail({
        id: options.id
      }).then(res => {
        console.log(res)
        if (res.code == 200) {
          imgList.push(img + res.data.img)
          this.setData({
            activeInfo: res.data,
            imgList: imgList
          })
        } else {
          wx.showToast({
            title: '数据请求失败',
            icon: 'none',
            duration: 3000
          })
        }
      }).catch(err => {
        console.log(err)
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})